package com.liangtian.mdm.system.group.dao;

import com.liangtian.mdm.base.BaseDao;
import com.liangtian.mdm.system.group.model.SysGroup;
import com.liangtian.mdm.system.group.model.SysGroupPermission;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface SysGroupDao extends BaseDao<SysGroup> {

    /**
     * 动态模型生成的业务   根据模型id查询属性组及属性组下的属性
     *
     * @param model_id
     * @return
     */
    public List<SysGroup> queryGroupBySurveyType(Map<String, Object> param);

    /**
     * 动态模型生成的业务   根据模型id查询属性组及属性组下的属性
     *
     * @param model_id
     * @return
     */
    public List<SysGroup> queryGroupBySurveyTypeCreate(Map<String, Object> param);

    /**
     * 根据属性组id查询属性
     *
     * @param model_id
     * @return
     */
    public List<String> queryColumnByGroupId(@Param(value = "groupId") String groupId);

    /**
     * 保存之前把原来这个业务类型下的属性组权限全部删除
     *
     * @param survey_type
     */
    public void delGroupPerBySurvey(Map<String, String> map);

    /**
     * 删除属性权限
     *
     * @param map
     */
    public void delAttrPerBySurvey(Map<String, String> map);

    /**
     * 保存属性组权限
     *
     * @param map
     */
    public void insertGroupPer(Map map);

    /**
     * 保存属性权限
     *
     * @param map
     */
    public void insertAttrPer(Map map);

    /**
     * 动态模型生成的业务   根据配置好的权限查询属性组及属性组下的属性
     *
     * @param survey_type
     * @return
     */
    public List<String> queryPermissionGroupBySurveyType(Map<String, Object> param);


    /**
     * 该用户下，所有视图权限
     *
     * @param userid
     * @return
     */
    public List<SysGroupPermission> queryGroupPermission(Map<String, Object> param);


}
